/*
 * ContentProperties.java
 *
 * Created on 13 de enero de 2006, 17:38
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package fmap.utils.properties;

import fmap.DatosCompartidos;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;

/**
 *
 * @author javi
 */
public class ContentProperties
{
    
    private static final String CONFIGURATION_FILE = "config";
    private static final String MSG_FILE = "msg"; // Fichero de properties para almacenar los mensajes de aviso de Fmap
    private Properties propiedadesConfig;
    private Properties propiedadesMsg;
    
    
    public ContentProperties ()
    {
        try
        {
            FileInputStream fConfig = new FileInputStream( DatosCompartidos.getPath ()+"/"+CONFIGURATION_FILE );
            FileInputStream fMsg = new FileInputStream( DatosCompartidos.getPath ()+"/"+MSG_FILE );
            
            propiedadesConfig = new Properties ();
            propiedadesConfig.load (fConfig);
            fConfig.close ();
            
            propiedadesMsg = new Properties ();
            propiedadesMsg.load (fMsg);
            fMsg.close ();

        }
        catch( Exception e)
        {
            e.toString ();
        }
    }
    
    public String getPropiedad (String nombre)
    throws PropertiesException
    {
        String valor = (String) propiedadesConfig.getProperty (nombre);

        if (valor == null)
            throw new PropertiesException (nombre);
        
        return valor;
    }
    
    
    
    public void setPropiedad (String nombre, String valor)
    {
        propiedadesConfig.setProperty ( nombre, valor );
        
        
        Class main = fmap.Main.class;
        ClassLoader mainLoader = main.getClassLoader ();
        
        try
        {
            FileOutputStream out = new FileOutputStream ( new File( DatosCompartidos.getPath ()+"/"+CONFIGURATION_FILE ) );

            propiedadesConfig.store ( out , CONFIGURATION_FILE);
        }
        catch( Exception e)
        {
            e.toString ();
        }
    }

    /**
     * Obtenemos una propiedad del fichero de mensajes
     */
    public String getPropertieMsg (String nombre)
    throws PropertiesException
    {
        String valor = (String) propiedadesMsg.getProperty (nombre);

        if (valor == null)
            throw new PropertiesException (nombre);

        return valor;
    }
}